
//角色： 管理员手中的记录本  导出的是个函数
import {InputChangeState,AddTodoItem,DeleteTodoItem,INITLISTACTION} from './actionType';
const defaultState={
        inputValue:'',
        list:[]
    }

// reducer可以接收state，但是不能改变state
//纯函数指的是 给固定的输入，就一定会有固定的输出，并且不会有副作用
export default (state=defaultState,action)=>{
    if(action.type===InputChangeState){
        const newState=JSON.parse(JSON.stringify(state));
        newState.inputValue=action.value;
        return newState;
    }
    if(action.type===AddTodoItem){
        const newState=JSON.parse(JSON.stringify(state));
        newState.list.push(newState.inputValue);
        newState.inputValue='';
        return newState;
    }
    if(action.type===DeleteTodoItem){
        const newState=JSON.parse(JSON.stringify(state));
        newState.list.splice(action.index,1);
        return newState;
    }
    if(action.type===INITLISTACTION){
        const newState=JSON.parse(JSON.stringify(state));
        newState.list=action.data;
        return newState;
    }
    return state
}


//下午5遍 redux工作流